'''PythonApplication1.py



在 Python 中，异常处理机制主要用于捕获和处理程序运行过程中可能出现的错误，从而避免程序因异常而崩溃。Python 使用 `try`, `except`, `else`, 和 `finally` 语句块来实现异常处理。下面是这些关键字的详细说明和使用示例：

1. **try 块**：用于包裹可能引发异常的代码。
2. **except 块**：用于捕获并处理 `try` 块中引发的异常。
3. **else 块**：可选，如果没有异常发生，则执行 `else` 块中的代码。
4. **finally 块**：可选，无论是否发生异常，`finally` 块中的代码都会被执行。

### 基本语法

```python
try:
    # 可能引发异常的代码
    pass
except SomeException as e:
    # 处理 SomeException 异常
    print(f"发生异常: {e}")
else:
    # 如果没有异常发生，执行这里的代码
    print("没有发生异常")
finally:
    # 无论是否发生异常，都会执行这里的代码
    print("finally 块总是会被执行")
```

### 示例

假设我们有一个简单的文件读取操作，可能会引发 `FileNotFoundError` 异常：

```python
try:
    with open('example.txt', 'r') as file:
        content = file.read()
        print(content)
except FileNotFoundError as e:
    print(f"文件未找到: {e}")
else:
    print("文件读取成功")
finally:
    print("无论是否发生异常，都会执行这行代码")
```

### 多个 except 块

可以使用多个 `except` 块来处理不同类型的异常：

```python
try:
    # 可能引发多种异常的代码
    x = 1 / 0  # 这里会引发 ZeroDivisionError
except ZeroDivisionError as e:
    print(f"除零错误: {e}")
except FileNotFoundError as e:
    print(f"文件未找到: {e}")
except Exception as e:
    print(f"未知错误: {e}")
else:
    print("没有发生异常")
finally:
    print("finally 块总是会被执行")
```

### 自定义异常

可以定义自己的异常类，继承自 `Exception` 类：

```python
class MyCustomError(Exception):
    def __init__(self, message):
        super().__init__(message)

try:
    raise MyCustomError("这是一个自定义异常")
except MyCustomError as e:
    print(f"捕获到自定义异常: {e}")
```

### 总结

- 使用 `try` 块包裹可能引发异常的代码。
- 使用 `except` 块捕获并处理特定类型的异常。
- 使用 `else` 块在没有异常发生时执行代码。
- 使用 `finally` 块确保某些代码无论是否发生异常都会被执行。

希望这些信息对你理解 Python 的异常处理机制有所帮助！如果有任何其他问题或需要进一步的示例，请告诉我。

'''


try:
    with open('example.txt', 'r') as file:
        content = file.read()
        print(content)
except FileNotFoundError as e:
    print(f"文件未找到: {e}")
else:
    print("文件读取成功")
finally:
    print("无论是否发生异常，都会执行这行代码")



try:
    # 可能引发多种异常的代码
    x = 1 / 0  # 这里会引发 ZeroDivisionError
except ZeroDivisionError as e:
    print(f"除零错误: {e}")
except FileNotFoundError as e:
    print(f"文件未找到: {e}")
except Exception as e:
    print(f"未知错误: {e}")
else:
    print("没有发生异常")
finally:
    print("finally 块总是会被执行")